<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1. 如果没有函数  做容错
        // fn && fn();
        // 2.判断变量 （防止变量报错）:如果存在变量就输出 如果没有就不输出也不报错
        // console.log(a);
        // if(a){
        //     console.log(a);
        // }
        // 判断一个变量是否存在 会通过更安全的 typeof 判断
        // console.log(typeof a);
        //注意： 这种判断的"undefined" 是一个字符串
        // var a = 10;
        // if(typeof a !== "undefined"){
        //     console.log(a);
        // }

        //  3.函数参数可以是多种形式 ，函数被称为一等公民
        // 函数参数可以是 数字、字符、数组、对象、函数、undefined、null、"";
        // 高阶函数：有函数作为另外一个函数的参数输入或者输出的函数；
        // function forEach(arr,fn) {
        //     for(var i=0;i<arr.length;i++){
        //         fn(arr[i]);
        //     }
        // }
        // var arr = ["张三","李四","王五"];
        // forEach(arr,function(item){
        //     console.log(item)
        // })
        // forEach(arr,function(key,item){
            // console.log(key,item);
        // })

        // 拆分
        // function test(arr,a) {
        //     // console.log(a);
        //     for(var i=0;i<arr.length;i++){
        //         a(i,arr[i]);
        //     }
        // }
        // test([9,10,11],function(key,item){
        //     console.log("我是传入的函数里打印的东西",key+"--"+item);
        // });
        
        


    </script>
</body>
</html>